// RAP [rh] DnD not implemented
///*******************************************************************************
// * Copyright (c) 2005, 2006 IBM Corporation and others.
// * All rights reserved. This program and the accompanying materials
// * are made available under the terms of the Eclipse Public License v1.0
// * which accompanies this distribution, and is available at
// * http://www.eclipse.org/legal/epl-v10.html
// *
// * Contributors:
// * IBM Corporation - initial API and implementation
// *******************************************************************************/
//package org.eclipse.ui.internal.dnd;
//
//import org.eclipse.swt.SWT;
//import org.eclipse.swt.graphics.Color;
//import org.eclipse.swt.graphics.RGB;
//import org.eclipse.swt.graphics.Rectangle;
//import org.eclipse.swt.widgets.Canvas;
//import org.eclipse.swt.widgets.Composite;
//import org.eclipse.ui.themes.ColorUtil;
//
///**
// * This class provides 'insertion' feedback to the User. It can be used to draw a
// * 'bracket' based on the trim area's rectangle.
// *
// * @since 3.2
// */
//public class InsertCaret {
// // Constants
// private static final int width = 6; // the handle's 'thickness'
// private static final int pctInset = 10; // The percentage of the area left at each 'end'
//
// // Control info
// private Canvas caretControl;
// private Canvas end1;
// private Canvas end2;
//
// // Colors
// private Color baseColor;
// private Color hilightColor;
// private boolean isHighlight;
//
// /**
// * Creates an affordance to indicate that the given trim area is a valid location for the
// * trim being dragged.
// *
// * @param windowComposite The window to create the affordance as a child of
// * @param trimRect The rectangle to show the affordance for
// * @param swtSide The 'side' that the rectangle is on
// * @param threshold The amount to offfset the affordance by
// */
// public InsertCaret(Composite parent, Rectangle trimRect, int swtSide, int threshold) {
// // Use the SWT 'title' colors since they should always have a proper contrast
// // and are 'related' (i.e. should look good together)
// baseColor = parent.getDisplay().getSystemColor(SWT.COLOR_LIST_SELECTION);
// RGB background = parent.getDisplay().getSystemColor(SWT.COLOR_LIST_BACKGROUND).getRGB();
// RGB blended = ColorUtil.blend(baseColor.getRGB(), background);
// hilightColor = new Color(parent.getDisplay(), blended);
//
// //Create the caret control
// createControl(parent, trimRect, swtSide, threshold);
// }
//
// /**
// * Creates a control to show the 'area valid' affordance. The current implementation creates a
// * simple rect half the length of the rect, centered and offset by the 'threshold' value.
// *
// * @param parent The control to used as the parent of the affordance control
// * @param trimRect The trim rectangle
// * @param swtSide The SWT side that the trim is on
// * @param threshold The offset value
// */
// private void createControl(Composite parent, Rectangle trimRect, int swtSide, int threshold) {
// int hDelta = trimRect.width/pctInset;
// int vDelta = trimRect.height/pctInset;
// caretControl = new Canvas (parent.getShell(), SWT.BORDER);
//
// end1 = new Canvas (parent.getShell(), SWT.BORDER);
// end1.setSize(width, width);
// end2 = new Canvas (parent.getShell(), SWT.BORDER);
// end2.setSize(width, width);
//
// Rectangle bb;
// switch (swtSide) {
// case SWT.TOP:
// caretControl.setSize(trimRect.width-(2*hDelta), width);
// caretControl.setLocation(trimRect.x + hDelta, trimRect.y + trimRect.height + threshold);
// bb = caretControl.getBounds();
// end1.setLocation(bb.x, bb.y-width);
// end2.setLocation((bb.x+bb.width)-width, bb.y-width);
// break;
// case SWT.BOTTOM:
// caretControl.setSize(trimRect.width-(2*hDelta), width);
// caretControl.setLocation(trimRect.x + hDelta, trimRect.y - threshold);
// bb = caretControl.getBounds();
// end1.setLocation(bb.x, bb.y+width);
// end2.setLocation((bb.x+bb.width)-width, bb.y+width);
// break;
// case SWT.LEFT:
// caretControl.setSize(width, trimRect.height -(2*vDelta));
// caretControl.setLocation(trimRect.x + trimRect.width + threshold,
// trimRect.y + vDelta);
// bb = caretControl.getBounds();
// end1.setLocation(bb.x-bb.width, bb.y);
// end2.setLocation(bb.x-bb.width, (bb.y+bb.height)-width);
// break;
// case SWT.RIGHT:
// caretControl.setSize(width, trimRect.height -(2*vDelta));
// caretControl.setLocation(trimRect.x - threshold,
// trimRect.y + vDelta);
// bb = caretControl.getBounds();
// end1.setLocation(bb.x+bb.width, bb.y);
// end2.setLocation(bb.x+bb.width, (bb.y+bb.height)-width);
// break;
// }
//
// // Initially create as not hilighted
// setHighlight(false);
// caretControl.moveAbove(null);
// end1.moveAbove(null);
// end2.moveAbove(null);
// }
//
// /**
// * Sets the hilight 'mode' for the control.
// * @param highlight true if the caret should be drawn as 'hilighted'
// */
// public void setHighlight(boolean highlight) {
// isHighlight = highlight;
//
// // if we're displaying as a 'bar' then set the control's background to the
// // appropriate value
// if (isHighlight) {
// caretControl.setBackground(hilightColor);
// end1.setBackground(hilightColor);
// end2.setBackground(hilightColor);
// }
// else {
// caretControl.setBackground(baseColor);
// end1.setBackground(baseColor);
// end2.setBackground(baseColor);
// }
// }
//
// public void dispose() {
// // Dispose the control's resources (we don't have to dispose the
// // 'bacseColor' because it's a system color
// hilightColor.dispose();
//
// caretControl.dispose();
// end1.dispose();
// end2.dispose();
// }
//}